/*
 * @Description: VUE-CLI 3.0对应的Webpack配置
 * @Author: slfang
 * @Date: 2019-11-26 18:42:24
 */
const path = require('path')
const proxy = require('./proxy.config')

function resolve (dir) {
  return path.join(__dirname, '.', dir)
}

module.exports = {
  publicPath: './',
  assetsDir: 'public',
  // 执行“npm run dev”运行开发模式时的相关配置项，开发模式将开启一个本地Web服务
  devServer: {
    // 启动本地Web服务默认端口，如当前端口被占用，则在当前端口值+1继续启动Web服务
    port: 9002,
    // 本地服务启动成功后是否触发使用默认浏览器打开首页，true-默认打开；false-默认不打开
    open: false,
    // 本地服务器是否开启https协议服务，true-开启https协议的Web服务；false-开启http协议的Web服务
    https: false,
    // 服务器代理设置
    proxy: proxy
  },
  css: {
    loaderOptions: {
      sass: {
        additionalData: `@import "@/common/style/utils.scss";`
      }
    }
  },
  // 网页标题
  chainWebpack: (config) => {
    config.plugin("html").tap((args) => {
      args[0].title = "";
      return args;
    });
  },
  configureWebpack: {
    resolve: {
      alias: {
        'vue$': 'vue/dist/vue.esm.js',
        // 配置src目录使用通配符"@src"进行访问，webpack编译打包时会将所有@src/xxx/xxx引用的路径全部转换为/src/xxx/xxx
        '@': resolve('src'),
        // 为避免对public下的静态资源文件进行编译，css样式中尽量不要使用@public路径编译，所有使用public目录资源下的全部使用绝对路径，如：/public/xxx/xxx
        // 配置src目录使用通配符"@public"进行访问，webpack编译打包时会将所有@public/xxx/xxx引用的路径全部转换为/public/xxx/xxx
        '@public': resolve('public')
      }
    },
  }
}
